package com.mdd.validate.agreement;

import lombok.Data;

/**
 * TODO
 * <p>
 * {@code @Description}
 * @Author 幻速
 * {@code @Date} 2023/10/31 14:31
 **/
@Data
public class UserAgreementQuery {
    /**
     * String	可选	64
     *     协议产品码，商户和支付宝签约时确定，商户可咨询技术支持。
     *     GENERAL_WITHHOLDING_P
     */
    private String personal_product_code;
    /**
     * String	可选	32
     *     用户的支付宝账号对应 的支付宝唯一用户号，以 2088 开头的 16 位纯数字 组成。
     *     本参数与alipay_logon_id若都填写，则以本参数为准，优先级高于 alipay_logon_id。
     *     想了解openid？
     *             2088101122675263
     */
    private String alipay_user_id;
    /**
     * String	可选	128
     *     请使用alipay_open_id，后续alipay_user_id将不支持新接入使用，存量已对接的也将逐步回收。用户openid简介用户的支付宝账号对应 的支付宝唯一用户号，
     *     本参数与alipay_logon_id若都填写，则以本参数为准，优先级高于 alipay_logon_id。
     *             074a1CcTG1LelxKe4xQC0zgNdId0nxi95b5lsNpazWYoCo5
     */
    private String alipay_open_id;
    /**
     * String	可选	100
     *     用户的支付宝登录账号，支持邮箱或手机号码格式。本参数与alipay_open_id 或 alipay_user_id 同时填写，优先按照 alipay_open_id 或 alipay_user_id 处理。
     *     abx@alitest.com
     */
    private String alipay_logon_id;
    /**
     * String	可选	64
     *     签约场景码，该值需要与系统/页面签约接口调用时传入的值保持一 致。如：周期扣款场景与调用 alipay.user.agreement.page.sign(支付宝个人协议页面签约接口) 签约时的 sign_scene 相同。
     *     注意：当传入商户签约号 external_agreement_no 时，该值不能为空或默认值 DEFAULT|DEFAULT。
     *     INDUSTRY|MEDICAL
     */
    private String sign_scene;
    /**
     * String	可选	32
     *     代扣协议中标示用户的唯一签约号(确保在商户系统中
     *                                            唯一)。
     *     格式规则:支持大写小写字母和数字，最长 32 位。
     *     test
     */
    private String external_agreement_no;
    /**
     * String	可选	32
     *     签约第三方主体类型。对于三方协议，表示当前用户和哪一类的第三方主体进行签约。
     *     默认为PARTNER。
     *     枚举值
     *     平台商户: PARTNER
     *             PARTNER
     */
    private String  third_party_type;
    /**
     * String	可选	64
     *     支付宝系统中用以唯一标识用户签约记录的编号（用户签约成功后的协议号 ） ，如果传了该参数，其他参数会被忽略
     * 20170322450983769228
     */
    private String  agreement_no;
}
